﻿/*
 *  ============================================================================
 *  Name:           Gestão de parques de estacionamento
 *  Author:         João Faria
 *  Email:          a8836@alunos.ipca.pt
 *                  jfaria.gmr@gmail.com
 *  Version:        0
 *  Date:           2013-04-10
 *  Copyright:       
 *  Description:    IPCA - Programação II
 *                  Projecto final
 *  ============================================================================
 */
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using GesParking.BusinessLayer;
using GesParking.BusinessObjects;

namespace GesParking
{
    /// <summary>
    /// Classe que gere os users
    /// </summary>
    class UsersPL
    {

        UsersBL users = new UsersBL(); ///Esta iniciação de parques deveria ser feita no main do form que faz a gestão de parques

        /// <summary>
        /// Lista os users activos
        /// </summary>
        /// <returns>Lista de users</returns>
        public List<UserBO> List()
        {
            return users.ListBL();
        }

        /// <summary>
        /// Adiciona um user
        /// </summary>
        /// <param name="id">Id do novo user</param>
        /// <param name="n">Nome do user</param>
        public void Add(Guid id, string n)
        {
            try
            {
                users.AddBL(new UserBO(id, n));
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }

        /// <summary>
        /// Desatica um user
        /// </summary>
        /// <param name="id">Id do user a desativar</param>
        public void Disable(Guid id)
        {
            try
            {
                users.DisableBL(id);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        /// <summary>
        /// Actualiza o nome do user
        /// </summary>
        /// <param name="n">Novo user</param>
        /// <param name="id">Id do user</param>
        public void UpdateName(string n, Guid id)
        {
            try
            {
                users.UpdateNomeUserBL(id, n);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        /// <summary>
        /// Grava os dados
        /// </summary>
        public void Save()
        {
            users.Save();
        }

        /// <summary>
        /// Lê os dados
        /// </summary>
        public void Read()
        {
            users.Read();
        }
    }
}
